import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import { fileURLToPath } from "url";

// 获取当前文件的目录名（类似于 CommonJS 的 __dirname）
// 由于 ES 模块没有 __dirname，所以需要通过 import.meta.url 来模拟
const __dirname = path.dirname(fileURLToPath(import.meta.url));

// https://vite.dev/config/
export default defineConfig(({ command, mode }) => {
  return {
    // 配置使用的 Vite 插件
    plugins: [vue()],

    // 路径解析配置
    resolve: {
      // 路径别名配置
      alias: {
        // @ 别名指向 src 目录，方便在代码中引用
        "@": path.resolve(__dirname, "./src"),
      },
    },

    // 开发服务器配置
    server: {
      // 启用热模块替换（HMR）
      hmr: true,

      // 指定开发服务器端口
      port: 5665,

      // 如果端口被占用，直接退出而不是尝试其他端口
      strictPort: true,

      // 指定服务器监听的主机名
      // "0.0.0.0" 表示监听所有网络接口，允许从外部访问
      host: "0.0.0.0",
    },
  };
});
